package com.example.demo.tlwbus;


import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @author zhengxh
 */
@Data
public class BaseDomain implements Serializable {

    private static final long serialVersionUID = 1L;

    private String id;

    /**
     * 创建时间
     */
    private LocalDateTime gmtCreate;

    /**
     * 修改时间
     */
    private LocalDateTime gmtModified;

    /**
     * 创建用户ID
     */
    private String createdUserId;

    /**
     * 最后修改用户
     */
    private String lastModifiedUserId;
    /**
     * 是否禁用 false-未禁用 true 禁用
     */
    private Boolean isDisable;
    /**
     * 解决组合索引冲突字段
     */
    private Boolean isDel;

    /**
     * 初始化系统要求的几个字段。
     *
     * @param createdUserId
     */
    public BaseDomain initialize(String createdUserId) {
        this.setIsDisable(false);
        this.setGmtCreate(LocalDateTime.now());
        this.setGmtModified(LocalDateTime.now());
        this.setCreatedUserId(createdUserId);
        this.setLastModifiedUserId(createdUserId);
        this.setIsDisable(false);
        return this;
    }

    /**
     * 设置更新相关的数据
     *
     * @param lastModifiedUserId
     */
    public BaseDomain updateModel(String lastModifiedUserId) {
        this.setGmtModified(LocalDateTime.now());
        this.setLastModifiedUserId(lastModifiedUserId);
        return this;
    }
}
